<html>
<script>
    // 对象的hasOwnProperty()方法用来检测给定的名字是否是对象的自有属性。
    // 对继承属性它将返回false:
    // var o = { x: 1 }
    // console.log(o.hasOwnProperty("x"));  // true: o有一个自有属性
    // console.log(o.hasOwnProperty("y"));  // false: o中不存在y
    // console.log(o.hasOwnProperty("toString"));  // false: toString是继承属性


    // propertyIsEnumerable()是hasOwnProperty（） 的增强版，只有检测到自有属性且这个属性的可枚举性为true时他才返回true
    var o = inherit({y: 2});
    o.x = 1;
    const array1 = [];
    array1[0] = 42;
    console.log(o.propertyIsEnumerable("x")); // true: o有一个可枚举的自有属性
    console.log(o.propertyIsEnumerable("y")); // false: y是继承来的
    console.log(array1.propertyIsEnumerable(0)); // false: 不可枚举

    // 例子 通过原型继承创建一个新的对象
    function inherit(p) {
        if (p == null) { throw TypeError(); }
        if (Object.create) {

        }
        var t = typeof p;
        if (t !== "object" && t !== "function") { throw TypeError(); }
        function f() { };
        f.prototype = p;
        return new f();
    }


</script>



<head>
    <title>放置文章标题</title>
</head>

<body>

</body>

</html>